The invention relates to protecting configuration data associated with input-output (I/O) devices.
Known device configuration techniques such as plug-and-play are implemented via basic input-output system (BIOS) instructions stored in read only memory (ROM). One responsibility of a plug-and-play BIOS is to initialize all plug-and-play compatible devices coupled to a computer system's motherboard (main circuit board) during start-up. One aspect of this responsibility is the allocation and assignment of system level resources such as direct memory access (DMA) channels, interrupt request lines (IRQs), I/O addresses, and memory addresses.
A plug-and-play device can have two types of resource settings: current resource settings (CRS) and possible resource settings (PRS). Current resource settings refer to actual resource values (e.g., IRQ 4) and reflect the physical configuration of a device. Possible resource settings refer to those resource values that a device may be assigned (e.g., any IRQ between 3 and 9).
If a plug-and-play device has more than one PRS, known device configuration techniques allow a user to change resource assignments. Resource modification is generally performed during system start-up by an application that is executed before control is passed to an operating system (i.e., before the operating system is loaded). If a computer system's resources are locked, the user will be prompted for a password before any resource assignment changes can be made.
Under the new advanced configuration and power interface (ACPI), information associated with motherboard plug-and-play devices is stored in ACPI tables. This information, which is available to the operating system at all times, can include for each device: (1) a control method for determining the device's current configuration, i.e., CRS; (2) a list of possible resource values, i.e., PRS; and (3) control methods for modifying the device's resource values. Under the ACPI specification, there is no provision to reject (i.e., lock) a request to modify plug-and-play resources. If an ACPI operating system has data reflecting a device's PRS, the system may modify those settings.